﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SRP_LibBusinessRules;
using SRPCENTRIA.Code;
using SRP_LibBusinessEntity;
using SRP_LibBusinessRules;

namespace SRPCENTRIA.ws_appPrivada
{
    public partial class wEnviarHomologar : BasePage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Session["Usuario"] != null)
                {
                    EUsuario usuario = (EUsuario)Session["Usuario"];
                    ((Label)Master.FindControl("lblusuario")).Text = usuario.VUSU_NOMBRES;
                }
                if (Request.QueryString["idproveedor"] == null)
                {
                    Response.Redirect("wBusqProveedor.aspx?solicitud=" + Constanst.Solicitud_EnviarHomologar);
                }
                string identificacion = Request.QueryString["idproveedor"].ToString();
                CargarHistoricoEstados(identificacion);
                CargarEmpresasHomologadoras();
                
            }
        }

        protected void btnEnviar_Click(object sender, EventArgs e)
        {
            try
            {
                EnviarAHomologar();
            }
            catch (Exception ex)
            {
                EscribirScript("Ocurrió un error en el Proceso");
            }
        }

        #region Custom Methods

        private void CargarHistoricoEstados(string identificacion)
        {
            NProveedor proveedor = new NProveedor();
            System.Data.DataTable dt = proveedor.HistoricoEstadosProveedor(identificacion);
            System.Data.DataView dv = new System.Data.DataView(dt, "", "IFLU_ID_ESTADO ASC", System.Data.DataViewRowState.CurrentRows);
            if (dt.Rows.Count > 0)
            {
                txttipodocumento.Text = dt.Rows[0].ItemArray[dt.Columns.IndexOf("NomTipIdentificacion")].ToString();
                txtnumerodocumento.Text = dt.Rows[0].ItemArray[dt.Columns.IndexOf("NumTipIdentificacion")].ToString();
                txtnombre.Text = dt.Rows[0].ItemArray[dt.Columns.IndexOf("Nombres")].ToString();
                txtemail.Text = dt.Rows[0].ItemArray[dt.Columns.IndexOf("Email")].ToString();
            }

        }

        private void EnviarHomologar(int estado, string obs, string identificacion)
        {
            NProveedor proveedor = new NProveedor();
            proveedor.ProveedorEstableNoEstable(estado, obs, identificacion);

            CargarHistoricoEstados(identificacion);
        }

        private void EnviarAHomologar() 
        {
            if (validar()) 
            {
                    NFormatCorreo formatocorreo = new NFormatCorreo();
                    System.Data.DataTable dtformatocorreo = formatocorreo.MostrarFormato(3);
                    string asunto = dtformatocorreo.Rows[0].ItemArray[dtformatocorreo.Columns.IndexOf("VFOR_DESCRIPCION_CORREO")].ToString();
                    string body = dtformatocorreo.Rows[0].ItemArray[dtformatocorreo.Columns.IndexOf("VFOR_DETALLE_CORREO")].ToString();

                    NCorreo correo = new NCorreo();

                    correo.EnviarCorreo(ddlempresas.SelectedValue, "Fase Homologacion", Constanst.FormatoCorreo.BodySendLinkHomologacion(txtnumerodocumento.Text));
                    //Util.EnviarCorreo(ddlempresas.SelectedValue, "Fase Homologacion", Constanst.FormatoCorreo.BodySendLinkHomologacion(txtnumerodocumento.Text));

           
                    correo.EnviarCorreo(txtemail.Text, asunto, body);
                    //Util.EnviarCorreo(txtemail.Text, asunto, body);

                    NProveedor proveedor = new NProveedor();
                    proveedor.ProveedorEstableNoEstable(Constanst.ProveedorEnviadoaHomologar, txtObservacion.Text, txtnumerodocumento.Text);
                    ScriptRedirect("Se envió el Proveedor a Homologar por " + ddlempresas.SelectedItem.Text, "3");

                    //EscribirScript("Se envió el Proveedor a Homologar por " + ddlempresas.SelectedItem.Text);

                    //Response.Redirect("wBusqProveedor.aspx?solicitud=" + Constanst.Solicitud_EnviarHomologar);
            }
        }

        private void ListarEmpresasHomologadoras() 
        {
            NGenerico generico = new NGenerico();
            System.Data.DataTable dt = generico.ListarEmp_Homolongadora();
            ddlempresas.DataSource = dt;
            ddlempresas.DataTextField = "VCEN_DESC_EMPRESA_CENTRIA";
            ddlempresas.DataValueField = "email";
        }

        private bool validar() 
        {
            bool result = true;
            string errores = "";

            if (ddlempresas.SelectedIndex <= 0) 
            { 
                result = false;
                errores = errores + " Seleccionar una Empresa Homologadora" + "\n";
                //EscribirScript("Seleccionar una Empresa Homologadora");
                
            }
            if (ddlempresas.SelectedValue.Trim() == "") 
            {
                result = false;
                errores = errores + " La Homologadora no tiene un correo registrado" + "\n";
                //EscribirScript("La Homologadora no tiene un correo registrado");
            }
            if (txtObservacion.Text == "") 
            { 
                result = false;
                errores = errores + " Ingresar una Observación" + "\n";
                //EscribirScript("Ingresar una Observacion");
            }

            if (!result) { EscribirScript(errores); }

            return result;

        }

        private void CargarEmpresasHomologadoras() 
        {
            NGenerico generico = new NGenerico();
            ddlempresas.DataSource = generico.ListarEmp_Homolongadora();
            ddlempresas.DataTextField = "VCEN_DESC_EMPRESA_CENTRIA";
            ddlempresas.DataValueField = "VUSU_EMAIL";
            ddlempresas.DataBind();
            ddlempresas.Items.Insert(0, "-- Seleccionar --");
        }

        #endregion
    }
}